#ifndef __THEME_DRAW_H__
#define __THEME_DRAW_H__

#include <windows.h>
#include <uxtheme.h>
#include <vsstyle.h>

class ThemeDraw
{
    struct CacheBitmap
    {
        int width;
        int height;

        HDC hDC;
        HBITMAP hBitmap;
        void* buf;
    };
public:
    ThemeDraw();
    ~ThemeDraw();

    void* PaintButton(int width, int height);
    void* PaintRadio(int width, int height);
    void* PaintCheckbox(int width, int height);
    void* PaintScrollBar(int width, int height);

private:
    CacheBitmap CreateBitmap(int width, int height);
    void* UpSideDown(CacheBitmap bitmap, bool alphaBlend);
};

#endif